package com.shenw.common.card;

import com.shenw.common.Role;
import com.shenw.common.character.Character;

public abstract class CommonCard extends Card {

	protected int damage;
	protected Role[] role;

	public CommonCard(PokerSuits suits, PokerPoints points) {
		super(suits, points);
	}
	
	public boolean process(Character source, Character target) {
		
		if (executeCheck(source, target)) {
			if (target.fightBack(this.name)) {
				// TODO log
			} else {
				execute(source, target);
			}
			return true;
		} else {
			return false;
		}
	}
	
	protected abstract boolean execute(Character source, Character target);
	
	protected abstract boolean executeCheck(Character source, Character target);
}
